Methods and systems for improving a search ranking using location awareness

ABSTRACT

Systems and methods improve search rankings for a search query by using location data associated with queries and documents related to the search query. In one aspect, a search query is received, a location score is determined, a topical score is determined, and an ordering of documents related to the search query is determined based, at least in part, on the location score and the topical score.

RELATED APPLICATION

This application claims priority under 35 U.S.C. § 119 based on U.S. Provisional Application No. 60/505,095, filed Sep. 22, 2003, the disclosure of which is incorporated herein by reference.

FIELD OF THE INVENTION

The invention generally relates to information retrieval systems. More particularly, the invention relates to methods and systems for improving a search ranking using location awareness.

BACKGROUND OF THE INVENTION

The World Wide Web (“web”) contains a vast amount of information. Locating a desired portion of the information, however, can be challenging. This problem is compounded because the amount of information on the web and the number of new users inexperienced at web searching are growing rapidly.

Existing search engines operating in a networked computer environment, such as the web or in an individual computer, can provide search results in response to entry of a user's search query. In many instances, the search results are ranked in accordance with the search engine's scoring or ranking system or method. For example, existing search engines score or rank documents of a search result for a particular query based on the contents of the documents, such as on the number of times a keyword or particular word or phrase appears in each document in the search results. Documents include, but are not limited to, for example, web pages of various formats, such as HTML, XML, XHTML; Portable Document Format (PDF) files; word processor and application program document files, electronic mail, audio/video/multimedia files, advertisements (of numerous formats and media types), etc.

Other search engines base scoring or ranking on more than the content of the document. For example, one known method, described in U.S. Pat. No. 6,285,999 issued to Page and an article entitled “The Anatomy of a Large-Scale Hypertextual Search Engine,” by Sergey Brin and Lawrence Page (each of which is incorporated herein by reference), assigns a degree of importance to a document, such as a web page, based on the link structure of the web page. Other conventional methods involve selling a higher score or rank in search results for a particular query to third parties that want to attract users or customers to their web sites.

Some documents may be of particular interest to users that reside in or are interested in certain geographical areas. For example, documents associated with an on-line newspaper may be of most relevance to the geographical area covered by the newspaper. Documents associated with local businesses or organizations are additional examples of documents that may be of particular interest to a geographical area. Thus, it can be desirable for a search engine to know whether a document has geographical significance and return documents that are in proximity to the user.

One known approach to returning business listings that are proximate to a searcher is provided by online “yellow pages” services, such as those offered by Yahoo! Inc. and Citysearch.com. When using these yellow pages services, a user specifies a location, typically by entering an address, city/state, or zip code. The user then submits a search query, and a list of business listings is provided in response. Each business listing may include listing information, such as the business name, address, telephone number, business category, etc. In addition, the online search provider determines a distance between the business listings and the user location. The returned business listings are presented to the user in their order of distance from the user location.

Another known technique for providing a primitive form of geographic-based searching is the service previously offered by the search engine Northern Light. When using this service, users specify a location by entering information (such as street address, city and state, zip code) into a “where” field. Users also specify a search query via a “what” field. Finally, users specify a distance radius via a “how far” drop-down menu. The user-specified distance is used to restrict, or filter, the set of results otherwise returned by the search query, so that only those results with a location within the specified radius from the user location is presented.

One problem with known techniques for providing geographically-based search results is that the most relevant search results, taking into account both location and non-location factors, are often not returned to the user. Another problem is that the best results, even when presented, are not ranked highest in the search results and, therefore, may be obscured by less relevant results. This occurs because existing techniques omit the most relevant search results if the location of the result is not within the user defined radius of search (e.g., in the Northern Light example above), or are included with and/or ranked lower than other less relevant search results that have locations closer to the user (e.g., in the yellow pages example above). Other shortcomings in existing techniques include the need for users to explicitly define a radius of interest, and the need to manually enlarge the radius to find more relevant results that were not returned, or page through many pages of less relevant but geographically proximate results to find the most relevant result.

Accordingly, there is a need in the art to be able to provide the most relevant documents considering both geographic and non-geographic relevance and to, therefore, provide users with quick access to better search results.

SUMMARY

According to one aspect consistent with the principles of the invention, a method for ordering documents is provided. The method may include receiving a search query, determining a location associated with the query, and determining topical scores for a group of documents based, at least in part, on the query. The method may also include selecting a set of documents from the group of documents, determining a distance score for each document in the set of documents using a document location associated with the document and the location associated with the query, and ordering the set of documents as a function of both the topical scores of the set of documents and the distance scores of the set of documents.

According to another aspect, a method for ranking documents is provided. The method may include receiving a search query, identifying a topic relating to the search query, and determining a location sensitivity of the identified topic. The method may also include identifying a set of documents based, at least in part, on the search query, determining a location associated with at least one document in the set of documents, and ranking the at least one document in the set of documents based, at least in part, on the location associated with the at least one document when the identified topic is determined to be location sensitive.

According to yet another aspect, a system for presenting advertisements relevant to a target document is provided. The system may include means for identifying a topic for the target document and means for identifying a location associated with the target document. The system may also include means for identifying targeting information for a group of advertisements and means for identifying a set of potential advertisements based, at least in part, on the targeting information and the topic for the target document. The system may further include means for determining a distance score for at least one advertisement in the set of potential advertisements using an advertiser location associated with the at least one advertisement and the location associated with the target document, means for ranking the set of potential advertisements based, at least in part, on the distance score of the at least one advertisement, and means for presenting at least one of the ranked set of potential advertisements in association with the target document.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the invention are better understood when the following Detailed Description is read with reference to the accompanying drawings, wherein:

FIG. 1 illustrates a block diagram of a system in which systems and methods consistent with the principles of the invention may be implemented; and

FIG. 2 illustrates a flow diagram of a method in accordance with one implementation consistent with the principles of the invention.

DETAILED DESCRIPTION

The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.

Systems and methods consistent with the principles of the invention may improve search ranking by using location information.

FIG. 1 is a block diagram of an exemplary system 100 in which systems and methods consistent with the principles of the invention may be implemented. The system 100 shown in FIG. 1 includes multiple client devices 102 a-n, a server device 104, and a network 106. The network 106 may include the Internet. Alternatively, network 106 may include one or more memory devices. In this case, client devices 102 a-n and server device 104 may operate in a single computer.

The client devices 102 a-n may each include a computer-readable memory 108, such as a random access memory (RAM), coupled to a processor 110. The processor 110 executes a set of computer-executable program instructions stored in memory 108. The processor 110 may include a microprocessor, an application-specific integrated circuit (ASIC), and/or a state machine. The processor 110 may include, or may be in communication with, media, for example computer-readable media, that stores instructions that, when executed by the processor 110, cause the processor 110 to perform functions described herein. In one implementation, this computer-readable media includes memory 108.

Implementations of computer-readable media include, but are not limited to, an electronic, optical, magnetic, or another storage or transmission device capable of providing a processor with computer-readable instructions. Other examples of suitable media include, but are not limited to, a floppy disk, CD-ROM, magnetic disk, memory chip, ROM, RAM, an ASIC, a configured processor, all optical media, all magnetic tape or other magnetic media, or any other medium from which a computer processor can read instructions. Also, various other forms of computer-readable media may transmit or carry instructions to a computer, including a router, private or public network, or another transmission device or channel, both wired and wireless. The instructions may comprise code from any computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, and JavaScript.

Client devices 102 a-n may also include a number of external or internal devices such as a mouse, a CD-ROM, a keyboard, a display, or other input or output devices. Examples of client devices 102 a-n include personal computers, digital assistants, personal digital assistants, cellular phones, mobile phones, smart phones, pagers, digital tablets, laptop computers, a processor-based device and similar types of systems and devices. In general, a client device 102 a-n may be any type of processor-based platform connected to a network 106 and that interacts with one or more application programs. The client devices 102 a-n shown include personal computers executing a browser application program, such as Internet Explorer™ from Microsoft Corporation, Netscape Navigator™ from Netscape Communications Corporation, and/or Safari™ from Apple Computer. Through the client devices 102 a-n, users 112 a-n can communicate over the network 106 with each other and with other systems and devices coupled to the network 106.

As shown in FIG. 1, a server device 104 is also coupled to the network 106. In the implementation shown, a user 112 a-n can generate a search query 114 at a client device 102 a-n to transmit to the server device 104 via the network 106. For example, a user 112 a types a textual search query into a query field of a web page of a search engine displayed on the client device 102 a, which is then transmitted via the network 106 to the server device 104. In the implementation shown, a user 112 a-n inputs a search query 114 at a client device 102 a-n which transmits an associated search query signal 126 reflecting the search query 114 to the server device 104.

The server device 104 may include a server executing a search engine application program such as the Google™ search engine. Similar to the client devices 102 a-n, the server device 104 may include a processor 116 coupled to a computer-readable memory 118. Server device 104, depicted as a single computer system, may be implemented as a network of computer processors. Examples of server devices 104 include servers, mainframe computers, networked computers, a processor-based device and similar types of systems and devices. Client processors 110 and the server processor 116 can be any of a number of well known computer processors, such as processors from Intel Corporation, Motorola Corporation, and Advanced Micro Devices.

Memory 118 may include the search engine application program, also known as a search engine 124. The search engine 124 locates relevant information in response to a search query 114 from a user 112 a-n.

The server device 104, or a related device, may search the network 106 to locate articles, such as web pages, stored at other devices or systems connected to the network 106, and index the articles in memory 118 or another data storage device. Articles include, documents, for example, web pages of various formats, such as HTML, XML, XHTML, PDF files, and word processor, database, and application program document files, audio, video, or any other information of any type whatsoever made available on a network (such as the Internet), a personal computer, or other computing or storage devices. The implementations described herein are described generally in relation to documents, but implementations may operate on any type of article.

The search engine 124 responds to the associated search query signal 126 reflecting the search query 114 by returning a set of relevant information or search results 132 to client device 102 a-n from which the search query 114 originated.

The search engine 124 may include a document locator 134, a ranking component 136, and a location component 138. In the implementation shown, each may comprise computer code residing in the memory 118. The document locator 134 may identify a set of documents 130 that are responsive to the search query 114 from a user 112 a. In the implementation shown, this is accomplished by accessing an index of documents, indexed in accordance with potential search queries or search terms. The ranking component 136 may rank or score the documents 130 that include the set of web pages or documents located based upon relevance to a search query 114 and/or any other criteria. The location component 138 may determine or otherwise measure a quality signal, such as a distance signal 128 that reflects or otherwise corresponds to the geographic relevance of one or more web pages or documents in the located set of the documents 130. Note that other functions and characteristics of the document locator 134, ranking component 136, and location component 138 are further described below.

Server device 104 also provides access to other storage elements, such as a location data storage element (in the example shown as location database 120) and a location sensitivity data storage element (in the example shown as topic database 122). The specific location sensitivity database shown is a topic database, but any location sensitivity data storage element may be used, such as a user database, a profile database, a query database, a keyword database, etc. Data storage elements may include any one or combination of methods for storing data, including without limitation, arrays, hash tables, lists, and pairs. Other similar types of data storage devices can be accessed by the server device 104. The location database 120 stores geographic or location data associated with documents and/or users. The search engine 124 determines relationships or otherwise executes a set of instructions to determine relationships between topics and their geographic or location sensitivity, and stores relationship-type data in the topic database 122. Alternatively, the location component 138 determines relationships or otherwise executes a set of instructions to determine relationships between topics and their geographic or location sensitivity, and stores relationship-type data in the topic database 122.

It should be noted that implementations consistent with the principles of the invention may include systems having a different architecture than that which is shown in FIG. 1. For example, in some alternative systems, the location database 120, topic database 122 and location component 138 may not be part of the search engine 124, and may carry out operations offline. Also, in other implementations, the location component 138 may affect the output of the document locator 134 or another component or system. The system 100 shown in FIG. 1 is merely exemplary, and is used to explain the exemplary processing described below with respect to FIG. 2.

In the exemplary implementation shown in FIG. 1, the topic database 122 contains data gathered and stored prior to carrying out the exemplary processing that will be described with respect to FIG. 2. Still referring to FIG. 1, the location component 138 may determine a relationship between a topic and its location sensitivity. For example, location component 138 may analyze the query to determine a keyword, or a query topic. Furthermore, it may determine the amount or extent to which geographically-based search results are relevant to the topic and a relevant geographic range for the topic, for example, by examining user behavior (e.g., user selection behavior, such as mouseover or click through) of search results 132 presented to the user.

For example, when a user 112 a types in search queries, such as “infinity auto” and “pizza,” location component 138 may determine associated topics of “car/automobile” and “restaurant.” This determination may be made in any number of ways known in the art and is, therefore, not described further. Location component 138 may further determine the sensitivity of the topics “car/automobile” and “restaurant” to location-based search results. For example, location component 138 may determine that users are generally more location sensitive for the topic “pizza” than for the topic “automobiles/cars,” so that users may generally be interested in documents on the topic of “automobiles/cars” that are far(ther) away from their location, whereas users may generally only be interested in documents on the topic of “pizza” that are near(er) to their location. Location sensitivity can be determined relatively, or in one implementation can also be mapped to a distance (e.g., users are generally interested in documents with a distance of up to 50 miles for “automobiles/cars,” but only 5 miles for “pizza”).

Location component 138 may employ various techniques to determine sensitivity. In one implementation, location component 138 may analyze user selection behavior (such as user click through, stay time, mouseover, conversion data, etc.) with respect to certain search results based in part on geographic relevance, as compared to other search results both with and without estimated geographic relevance. As described in more detail below, in certain implementations consistent with the invention, location sensitivity may be used to affect the output of search engine 124, including ranking component 136, document locator 134, and/or location component 138. Other types of relationships or proximities can be defined according to implementations consistent with the invention and stored by the topic database 122.

In one implementation, the location database 120 may store address/map data associated with users, queries, and/or documents stored by the server device 104. Note that in certain implementations, locations associated with documents may be stored and indexed when search engine 124 performs a search of the network 106 to locate articles, such as web pages, and may be stored with the articles in memory 118. Location database 120 may be consulted to determine a location associated with a user or a document, such as when calculating a distance between a user location and a document location (as described further below).

Various methods in accordance with the principles of the invention may be carried out. One exemplary method consistent with the principles of the invention comprises receiving a search query, determining a location associated with the search query, determining topical scores for a set of documents based, at least in part, on the search query, selecting documents from the set of documents to be presented, determining a distance score for each of the selected documents using a document location associated with the document and the location associated with the query, and ordering (or ranking or arranging) the selected documents as a function of both the topical scores of the documents and the distance scores of the documents.

In some implementations, a ranking score for a document is determined. This may be accomplished in any fashion. For example, a mathematical function or algorithm may be used. One or more variables may be used in the function, including those associated with distances between a document location and a location associated with the query. One example of determining a ranking score for a document includes determining an initial ranking score for the document when associated with the search query, and calculating a mathematical function including the initial ranking score and the distance score. This mathematical function may be any of a variety of functions or algorithms. One such function includes combining the initial ranking score and the distance score, possibly weighted with at least one weighting factor. Other such functions include combining the initial ranking score and the distance score, possibly normalized with at least one normalization factor. Again, these are only examples, and a variety of formulations are possible, as would be understood by those of skill in the art.

FIG. 2 illustrates an exemplary method 200 consistent with the principles of the invention. This exemplary method is provided by way of example, as there are a variety of ways to carry out methods consistent with the invention. The method 200 shown in FIG. 2 can be executed or otherwise performed by any of various systems. The method 200 is described below as carried out by the system 100 shown in FIG. 1 by way of example. The method 200 shown provides an improvement of a search ranking using geographic relevance.

Each block shown in FIG. 2 represents one or more steps carried out in the exemplary method 200. Additional steps may be added and/or steps may be omitted or changed, and steps need not be performed in the order shown. Referring to FIG. 2, in block 202, the example method 200 begins. Block 202 is followed by block 204, in which a search query, in the form of a search query signal, is received by the server device 104. In the implementation shown, a user 112 a generates a search query 114 at a client device 102 a. The client device 102 a transmits an associated search query signal 126 reflecting the search query 114 to the server device 104 via a network 106. The search engine 124 receives the search query signal 126 and processes the search query 114. For example, if the user 112 a types a search query “pizza palo alto” into the search or query field of a search page on a browser application program, the client 102 a transmits a search query signal 126 that includes the text “pizza palo alto” or some other representation or indication of “pizza palo alto.” The search engine 124 receives the signal 126 and determines that “pizza palo alto” is the desired search query 114.

Block 204 is followed by block 206, in which one or more locations associated with the search query 114 are determined. This may be accomplished, for example, by the user specifying location information explicitly, by examining a cookie or other user profile or account information, by inferring or implying location information based, at least in part, on the user's network address, browsing history, search history (including the query being served, e.g., “palo alto” from the query “pizza palo alto”), and/or by consulting location database 120. Other techniques for determining location information are disclosed in U.S. patent application Ser. No. 10/665,359, entitled “DETERMINING GEOGRAPHICAL RELEVANCE OF WEB DOCUMENTS,” filed Sep. 22, 2003, which is hereby incorporated herein by reference. For example, a geographic relevance component (not shown) may determine whether particular web documents have a particular geographic relevance, as described in U.S. patent application Ser. No. 10/665,359. In addition, for documents that have a particular geographic relevance, the geographic relevance component may determine one or more geographic location(s) to which the documents have geographic relevance.

Block 206 is followed by block 208, in which documents are identified. In this block 208 in the implementation shown, the search engine 124 may conduct a search for relevant documents in a search database (not shown) or memory 118 that have previously been indexed from the network 106. The search engine 124 may receive document data from the search database or memory 118 in response to the search query signal 126 reflecting the search query 114 from the user 112 a. Document data can include, but is not limited to, a universal resource locator (URL) that provides a link to a document, web page, or to a location from which a document or web page can be retrieved or otherwise accessed by the user 112 a via the network 106, data indicating one or more locations with which documents are associated, and data corresponding to the text of the documents. Note that document data may sometimes be referred to as a “document” throughout the description herein. Alternatively, the search engine 124 may obtain or otherwise receive document data in other ways.

For example, in block 208, the search engine 124 may identify documents responsive to the search query “pizza palo alto.” For example, these documents may include a list of 100 documents that are related to “pizza” or “palo alto” (or both). In this implementation, the identification of documents may be performed by a conventional search engine query and results return.

Block 208 is followed by block 210, in which a topical score is determined. In the implementation shown, a topical relevance score for each of the identified documents is determined. By topical score, it should be understood that various information retrieval and other techniques used by conventional search engines to determine the relevance of a document may be employed. For example, in a web search, one can use text information, link information and link structure, personalized information, etc. In particular, topical score refers to a score generated from various sources and signals other than location information. In one implementation, the topical score increases with relevance (i.e., it is an increasing function of relevance), such that a less relevant result according to the topical score factors corresponds to a lower or equal topical score.

Block 210 is followed by block 212, in which a distance score is determined. For example, in one implementation, one or more locations associated with each of the identified documents is determined, and a distance score is calculated for each document based, at least in part, on the distance between the location(s) associated with the document and the location associated with the search query. The distance score can be a distance measure, such as, for example, the straight-line distance between a document location and the search query location, or the driving distance or estimated driving time from the search query location to the document location along established roadways. The distance score may involve various weights and factors (as one example, weighting and normalization may be used when a document is associated with multiple locations). As will be appreciated by those of skill in the art, numerous methods and factors may be included in a distance score. In one implementation, the distance score F is a decreasing function of a distance measure, such that if d is the distance measure, F(d₂)≦F(d₁) when d₂>d₁. In one implementation, the distance score is a continuous and monotonic function of a distance measure. In a further implementation, the distance score is a continuous, smooth and strictly monotonic function (i.e., monotonically increasing or monotonically decreasing) of a distance measure.

Block 212 is followed by block 214, in which a combined relevance score is determined. In one implementation, the topical scores and distance scores are merged to yield a combined score. For example, the topical score and distance score of each of the identified documents may be joined to determine a combined relevance score for the document. In one implementation in which the topical score R is an increasing function of relevance and the distance score F is a decreasing function of a distance measure d, the combined relevance score C=C(R, F(d)) is an increasing function of R and an increasing function of F(d). For example, the functions F and C may be of the following form:

$\begin{matrix} {{F(d)} = \frac{\alpha}{\beta + d}} \\ {{{C\left( {R,F} \right)} = {{\kappa*R} + {\lambda\;{F(d)}}}},} \end{matrix}$ where α, β, κ, λ are appropriate constants or weighting factors. The weighting factors may vary based, at least in part, on the search query, such as a topic associated with the search query and/or a keyword associated with the search query. In general, there may be numerous formulations of combined relevance score C using topical score R and distance score F. In one implementation, C is a continuous, smooth and strictly monotonic function of both R and F.

In one embodiment of the invention, because the combined relevance score C considers both the topical score R and the distance score F of a document, it may be possible that the ordering of documents according to combined relevance scores C yields a different order than if the documents are ordered according to topical scores R or according to distance scores F. For example, consider three documents: document A, document B, and document C. Assume that document A has a topical score R1, a distance score F1, and a corresponding relevance score C1; document B has a topical score R2 (where R2>R1), a distance score F2 (where F2<F1), and a corresponding relevance score C2; and document C has a topical score R3 (R3>R1), a distance score F3 (where F3<F1), and a corresponding relevance score C3. Because the combined relevance score is a function of both the topical score and the distance score, it may be possible for the combined relevance score C2 to be greater than the combined relevance score C1 and the combined relevance score C1 to be greater than the combined relevance score C3, or vice versa.

As previously mentioned, different topics, queries, users, geographic locales, etc. may have different location sensitivity. For example, a topic, such as “plumbers,” may be strongly associated with local documents or web pages (high location sensitivity), whereas a topic like “travel destinations” may be less location sensitive. Certain query types (e.g., commercial queries) may have different location sensitivity. Similarly, some users may specify a more local focus for their desired search results than other users, or may be determined to have a more local focus based, at least in part, on browsing history, search history, or transactional or other kinds of available data. One location, such as Manhattan, N.Y., might be more location sensitive compared to another geographic area, such as Camas County, Idaho (the most sparsely populated county in Idaho).

The specificity of a location term provided or inferred (e.g., a location specified by a user or a search query), such as a zip code versus a city versus a street address, may affect location sensitivity, as would information, such as a user specified maximum distance (“I'm willing to travel 30 miles to . . . ”). For a decreasing distance score function F, it may be desirable to adjust the rate at which F decreases as a function of distance based, at least in part, on location sensitivity. Thus, one reformulation of the distance score F given above might be:

${{F\left( {d,S} \right)} = \frac{\alpha}{\beta + {S \times d}}},$ where S is a location sensitivity score. As mentioned above, S itself may be a function of the topic, the search query or query terms, the user or user profile, the location associated with the query or a cluster of the search results, or any number of other factors.

Block 214 is followed by block 216, in which search results are provided. The search engine 124 may form the search results 132 from the documents for which a combined relevance score was determined. Using the combined relevance signal from block 214, the search engine 124 may generate a rank or score of the documents located in search results 132. Note that the search engine 124 can use topical signals in conjunction with distance signals to rank or otherwise score documents of search results 132. In some instances, the search engine 124 can further decide whether, and how (e.g., via weighting, etc.) to use a particular distance signal and topical signal during processing of a score or ranking for a search result. Block 216 is followed by block 218, in which the method 200 ends.

Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, certain of the acts described with respect to FIG. 2 may be performed in parallel or in a different order. As another example, location sensitivity may be directly incorporated into the combined relevance score, rather than in the distance score, and indeed the topical relevance and distance measures may be directly combined into a combined relevance score without the need for separate topical scores and distance scores. In one implementation, a topical score may be employed to determine an initial set of (ordered) search results, and the distance score may subsequently be employed to “re-rank” the initial set of results, or vice versa.

Furthermore, the implementations described herein have been described in the context of an internet search engine returning more relevant search results to a user search query. However, it will be recognized that systems and methods consistent with the principles of the present invention are also applicable to determining and serving more relevant advertisements by taking into account geographic location. Such advertisements may be of many forms and types, and may be ordered in various manners, as disclosed, for example, in U.S. patent application Ser. No. 10/445,376, entitled “SCORING, MODIFYING SCORES OF, AND/OR FILTERING ADVERTISEMENTS USING ADVERTISER INFORMATION,” filed on May 23, 2003, the disclosure of which is hereby incorporated by reference.

Furthermore, it will be appreciated that consistent with the principles of the invention, a search query is not necessary for performance of the methods described herein. Instead, the concept or topic of a document (e.g., a web page) may be used to determine other documents that may be ordered or ranked according to the principles described herein. Such concepts or topics of a document may be determined according to the methods disclosed in, for example, U.S. patent application Ser. No. 10/389,688, entitled “SUGGESTING AND/OR PROVIDING AD SERVING CONSTRAINT INFORMATION,” filed on Mar. 14, 2003, U.S. patent application Ser. No. 10/375,900, entitled “SERVING ADVERTISEMENTS BASED ON CONTENT,” filed on Feb. 26, 2003, U.S. patent application Ser. No. 10/314,427, entitled “METHODS AND APPARATUS FOR SERVING RELEVANT ADVERTISEMENTS,” filed on Dec. 6, 2002, and U.S. Provisional Application Ser. No. 60/413,536, entitled “METHODS AND APPARATUS FOR SERVING RELEVANT ADVERTISEMENTS,” filed on Sep. 24, 2002, each of which is hereby incorporated herein by reference.

For example, a technique may be used to analyze a target document to identify one or more topics or concepts for the target document and a location associated with the target document, identify targeting information for a number of advertisements, and compare the targeting information to the topics or concepts to identify a set of potential advertisements. The technique may further be used to determine a distance score for at least one advertisement in the set of potential advertisements using an advertiser location associated with the one advertisement and the location associated with the target document, and order the set of potential advertisements based, at least in part, on the distance score of the at least one advertisement. At least some of the ordered set of potential advertisements may then be presented in accordance with the target document.

It will be apparent to one of ordinary skill in the art that aspects of the invention, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the invention is not limiting of the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that a person of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.

While the above description of preferred implementations of the invention provides illustration and description, it is not intended to be exhaustive or to limit the invention to the precise form disclosed. 

1. A method performed by a server device, comprising: receiving, by a processor of the server device, a query; determining, by the processor, a geographic location associated with the query; determining, by the processor, a topic corresponding to the query; determining, by the processor, a distance adjustment factor associated with the topic; identifying, by the processor, a set of documents based, at least in part, on the query; determining, by the processor, for each document in the set of documents, a topical score based, at least in part, on the query; determining, by the processor, for each document in the set of documents, a measure of distance between a geographic location associated with the document and the geographic location associated with the query; generating, by the processor, for each document in the set of documents, a distance score based, at least in part, on the measure of distance and the distance adjustment factor, where the distance adjustment factor controls an amount that the distance score changes as a function of the measure of distance; and ordering, by the processor, the set of documents as a function of both the topical scores for the set of documents and the distance scores for the set of documents.
 2. The method of claim 1, where the function depends on the topical score and the distance score of each document in the set of documents.
 3. The method of claim 1, where the topical score is higher for a more relevant one of the documents than a less relevant one of the documents, and the distance score is higher for one of the documents with the geographic location nearer to the geographic location associated with the query than another one of the documents with the geographic location further from the geographic location associated with the query.
 4. The method of claim 3, where the function is a monotonic function of the topical scores and a monotonic function of the distance scores.
 5. The method of claim 1, where the distance score is a monotonic function of the distance.
 6. The method of claim 1, where the ordering the set of documents further comprises weighting the topical scores and the distance scores differently.
 7. The method of claim 6, where a topic weight is applied to the topical scores and a distance weight is applied to the distance scores.
 8. The method of claim 7, where the topic weights vary for different ones of the topical scores and the distance weights vary for different ones of the distance scores.
 9. The method of claim 8, where at least some of the weights vary based, at least in part, on the query.
 10. The method of claim 8, where at least some of the weights vary based, at least in part, on one of the topic or a keyword associated with the query.
 11. The method of claim 1, where a first document in the set of documents includes a corresponding first topical score and first distance score, a second document in the set of documents includes a corresponding second topical score higher than the first topical score and second distance score lower than the first distance score, a third document in the set of documents includes a corresponding third topical score higher than the first topical score and third distance score lower than the first distance score; and where the ordering the set of documents includes ordering the second document higher than the first document and the third document lower than the first document.
 12. The method of claim 1, where a first document in the set of documents includes a corresponding first topical score and first distance score, a second document in the set of documents includes a corresponding second topical score lower than the first topical score and second distance score higher than the first distance score, a third document in the set of documents includes a corresponding third topical score lower than the first topical score and third distance score higher than the first distance score; and where the ordering the set of documents includes ordering the second document higher than the first document and the third document lower than the first document.
 13. The method of claim 1, where the ordering the set of documents includes; generating an overall score, for each of the documents in the set of documents, as a combination of the topical score and the distance score, and ordering the set of documents based, at least in part, on the overall scores.
 14. The method of claim 1, where the documents are web pages.
 15. The method of claim 1, where the documents are advertisements.
 16. A system, comprising: one or more devices comprising: means for determining a geographic location associated with a query; means for determining a topic associated with the query; means for determining a distance adjustment factor associated with the topic; means for determining a distance score for each document of a plurality of documents based, at least in part, on the distance adjustment factor and a measure of distance between a geographic location, to which the document is geographically relevant, and the geographic location associated with the query, where the distance adjustment factor controls a rate at which the distance score changes as a function of the measure of distance; means for determining a topical score for each document of the plurality of documents based, at least in part, on the query; and means for ranking the plurality of documents based, at least in part, on the distance scores and the topical scores.
 17. The system of claim 16, where the means for ranking the plurality of documents includes means for arranging the plurality of documents based, at least in part, on the distance scores and topical scores for the plurality of documents, where the topical score is higher for a more relevant one of the plurality of documents than a less relevant one of the plurality of documents, and the distance score is higher for one of the plurality of documents with the geographic location nearer to the geographic location associated with the query than another one of the plurality of documents with the geographic location further from the geographic location associated with the query.
 18. A server, comprising: one or more devices comprising: a document locator configured to: receive a search query, and identify a set of documents based, at least in part, on the search query; a location component configured to: determine a geographic location associated with the search query, determine a topic associated with the search query, and determine a distance adjustment factor associated with the topic; and a ranking component configured to: determine topical scores for the set of documents based, at least in part, on the search query, determine distance scores for the set of documents based, at least in part, on the distance adjustment factor and measures of distance between geographic locations associated with the set of documents and the geographic location associated with the search query, where the distance adjustment factor controls a rate at which the distance scores change as a function of the measures of distance, and rank the set of documents based, at least in part, on the topical scores for the set of documents and the distance scores for the set of documents.
 19. The server of claim 18, where the ranking component is further configured to order the set of documents based, at least in part, on the ranking of the set of documents.
 20. A storage device containing instructions executable by at least one processor to perform a method that comprises: receiving a search query; identifying a geographic location associated with the search query; identifying a topic relating to the search query; determining a distance adjustment factor relating to the identified topic; identifying a set of documents based, at least in part, on the search query; determining a geographic location associated with at least one document in the set of documents; calculating a distance score based, at least in part, on the distance adjustment factor and a measure of distance between the geographic location associated with the search query and the geographic location associated with the at least one document, where the distance adjustment factor controls an amount that the distance score changes as a function of the measure of distance; determining a topical score for the at least one document based, at least in part, on the search query; and ranking the at least one document in the set of document based, at least in part, on the distance score and the topical score.
 21. The storage device of claim 20, where the distance adjustment factor is determined based, at least in part, on a user profile associated with a user.
 22. The storage device of claim 20, where the distance adjustment factor is determined based, at least in part, on user behavior with regard to prior search results.
 23. The storage device of claim 21, where the distance score and the topical score are weighted differently.
 24. A storage device containing instructions executable by at least one processor to perform a method that comprises: receiving a search query; identifying a geographic location associated with the search query; identifying a set of documents based, at least in part, on the search query; determining, for each document in the set of documents, a topical score based, at least in part, on a relevance of the document to the search query; determining, for each document in the set of documents, a distance score based, at least in part, on a measure of distance between a geographic location associated with the document and the geographic location associated with the search query; determining a distance weight based, at least in part, on a topic or keyword associated with the search query; applying the distance weight to the distance score to generate a weighted distance score; generating, for each document in the set of documents, a total score based, at least in part, on the topical score and the weighted distance score; ordering the set of documents based, at least in part, on the total scores; generating a search result document that includes information regarding the ordered set of documents; and presenting the search result document.
 25. The storage device of claim 24, where the method further comprises: selecting a topical weight based, at least in part, on the topic keyword associated with the search query; and applying the topical weight to the topical score to generate a weight topical score; where generating, the total score includes: generating, for each document in the set of document, a total score based, at least in part, on the weighted topical score and the weighted distance score. 